package models

import (
	"fmt"
)

func (z *Struct技能信息) TableName() string {
	return "技能信息"
}

type Struct技能信息 struct {
	Id       int32                `xorm:"autoincr"` //uid        int
	V技能的职业   string               `xorm:"'技能的职业'"`  //Red红法 	Bare斗士   OneHand[剑士]  Bow[弓]  Blue[蓝法]
	V职业掩码    int32                `xorm:"'职业掩码'"`
	V技能类型    string               `xorm:"'技能类型'"` //Staff[杖击] 	RedSupport[红法高极技能]  BareHand[斗手]  BareFoot[斗脚]   OneHand[剑]  Bow[弓]  Spirit[弓辅助]  Blue[蓝法]  BlueSupport[蓝法辅助]
	V辅助ID    uint16               `xorm:"'辅助ID'"` //0为不是辅助，非0为辅助编号，两个相同的辅助编号只能存在一个
	V辅助时长    []uint16             `xorm:"'辅助时长'"`
	V辅助自己    bool                 `xorm:"'辅助自己'"`
	V滞留技能    bool                 `xorm:"'滞留技能'"`
	V攻击类型    byte                 `xorm:"'攻击类型'"` //0物理技能 1物理魔法 2魔法  3低等技能 4高等技能 5RC技能 6AC技能 10其它
	V步骤      uint8                `xorm:"'步骤'"`
	V等级      uint8                `xorm:"'等级'"`
	V技能英文名   string               `xorm:"'技能英文名'"`
	V技能中文名   string               `xorm:"'技能中文名'"`
	V技能备注    string               `xorm:"'技能备注'"`
	V需求经验    []int64              `xorm:"'需求经验'"`
	V未知      string               `xorm:"'未知'"`
	V未知1     int32                `xorm:"'未知1'"`
	V未知2     int32                `xorm:"'未知2'"`
	V备注      string               `xorm:"'备注'"`
	V属性要求    map[uint8]uint16     `xorm:"'属性要求'"`
	V技能要求    map[string]uint16    `xorm:"'要求技能'"` //第一个为技能的英文名称
	V攻击次数    []uint8              `xorm:"'攻击次数'"`
	V攻击速度    []uint16             `xorm:"'攻击速度'"`
	V冷却时间    []int32              `xorm:"'冷却时间'"`
	V魔法消耗    []uint32             `xorm:"'魔法消耗'"`
	V攻击距离    []float32            `xorm:"'攻击距离'"`
	V攻击半径    []float32            `xorm:"'攻击半径'"`
	V基础属性1   map[string]float32   `xorm:"'基础属性1'"`
	V基础属性2   map[string]float32   `xorm:"'基础属性2'"`
	V基础属性3   map[string]float32   `xorm:"'基础属性3'"`
	V基础属性4   map[string]float32   `xorm:"'基础属性4'"`
	V基础属性5   map[string]float32   `xorm:"'基础属性5'"`
	V基础属性6   map[string]float32   `xorm:"'基础属性6'"`
	V基础属性7   map[string]float32   `xorm:"'基础属性7'"`
	V基础属性8   map[string]float32   `xorm:"'基础属性8'"`
	V基础属性9   map[string]float32   `xorm:"'基础属性9'"`
	V基础属性10  map[string]float32   `xorm:"'基础属性10'"`
	V基础属性11  map[string]float32   `xorm:"'基础属性11'"`
	V基础属性12  map[string]float32   `xorm:"'基础属性12'"`
	V基础属性13  map[string]float32   `xorm:"'基础属性13'"`
	V基础属性14  map[string]float32   `xorm:"'基础属性14'"`
	V基础属性15  map[string]float32   `xorm:"'基础属性15'"`
	V基础属性16  map[string]float32   `xorm:"'基础属性16'"`
	V基础属性17  map[string]float32   `xorm:"'基础属性17'"`
	V基础属性18  map[string]float32   `xorm:"'基础属性18'"`
	V基础属性19  map[string]float32   `xorm:"'基础属性19'"`
	V基础属性20  map[string]float32   `xorm:"'基础属性20'"`
	V基础属性21  map[string]float32   `xorm:"'基础属性21'"`
	V基础属性22  map[string]float32   `xorm:"'基础属性22'"`
	V基础属性23  map[string]float32   `xorm:"'基础属性23'"`
	V基础属性24  map[string]float32   `xorm:"'基础属性24'"`
	V基础属性25  map[string]float32   `xorm:"'基础属性25'"`
	V基础属性26  map[string]float32   `xorm:"'基础属性26'"`
	V基础属性27  map[string]float32   `xorm:"'基础属性27'"`
	V基础属性28  map[string]float32   `xorm:"'基础属性28'"`
	V基础属性29  map[string]float32   `xorm:"'基础属性29'"`
	V基础属性30  map[string]float32   `xorm:"'基础属性30'"`
	V基础属性31  map[string]float32   `xorm:"'基础属性31'"`
	V基础属性32  map[string]float32   `xorm:"'基础属性32'"`
	V基础属性33  map[string]float32   `xorm:"'基础属性33'"`
	V基础属性34  map[string]float32   `xorm:"'基础属性34'"`
	V基础属性35  map[string]float32   `xorm:"'基础属性35'"`
	V基础属性36  map[string]float32   `xorm:"'基础属性36'"`
	V基础属性37  map[string]float32   `xorm:"'基础属性37'"`
	V基础属性38  map[string]float32   `xorm:"'基础属性38'"`
	V基础属性39  map[string]float32   `xorm:"'基础属性39'"`
	V基础属性40  map[string]float32   `xorm:"'基础属性40'"`
	V基础属性41  map[string]float32   `xorm:"'基础属性41'"`
	V基础属性42  map[string]float32   `xorm:"'基础属性42'"`
	V基础属性43  map[string]float32   `xorm:"'基础属性43'"`
	V基础属性44  map[string]float32   `xorm:"'基础属性44'"`
	V基础属性45  map[string]float32   `xorm:"'基础属性45'"`
	V基础属性46  map[string]float32   `xorm:"'基础属性46'"`
	V基础属性47  map[string]float32   `xorm:"'基础属性47'"`
	V基础属性48  map[string]float32   `xorm:"'基础属性48'"`
	V基础属性49  map[string]float32   `xorm:"'基础属性49'"`
	V基础属性50  map[string]float32   `xorm:"'基础属性50'"`
	V基础属性51  map[string]float32   `xorm:"'基础属性51'"`
	V基础属性52  map[string]float32   `xorm:"'基础属性52'"`
	V基础属性53  map[string]float32   `xorm:"'基础属性53'"`
	V基础属性54  map[string]float32   `xorm:"'基础属性54'"`
	V基础属性55  map[string]float32   `xorm:"'基础属性55'"`
	V基础属性56  map[string]float32   `xorm:"'基础属性56'"`
	V基础属性57  map[string]float32   `xorm:"'基础属性57'"`
	V基础属性58  map[string]float32   `xorm:"'基础属性58'"`
	V基础属性59  map[string]float32   `xorm:"'基础属性59'"`
	V基础属性60  map[string]float32   `xorm:"'基础属性60'"`
	V基础属性61  map[string]float32   `xorm:"'基础属性61'"`
	V基础属性62  map[string]float32   `xorm:"'基础属性62'"`
	V基础属性63  map[string]float32   `xorm:"'基础属性63'"`
	V基础属性64  map[string]float32   `xorm:"'基础属性64'"`
	V基础属性65  map[string]float32   `xorm:"'基础属性65'"`
	V基础属性66  map[string]float32   `xorm:"'基础属性66'"`
	V基础属性67  map[string]float32   `xorm:"'基础属性67'"`
	V基础属性68  map[string]float32   `xorm:"'基础属性68'"`
	V基础属性69  map[string]float32   `xorm:"'基础属性69'"`
	V基础属性70  map[string]float32   `xorm:"'基础属性70'"`
	V基础属性71  map[string]float32   `xorm:"'基础属性71'"`
	V基础属性72  map[string]float32   `xorm:"'基础属性72'"`
	V基础属性73  map[string]float32   `xorm:"'基础属性73'"`
	V基础属性74  map[string]float32   `xorm:"'基础属性74'"`
	V基础属性75  map[string]float32   `xorm:"'基础属性75'"`
	V基础属性76  map[string]float32   `xorm:"'基础属性76'"`
	V基础属性77  map[string]float32   `xorm:"'基础属性77'"`
	V基础属性78  map[string]float32   `xorm:"'基础属性78'"`
	V基础属性79  map[string]float32   `xorm:"'基础属性79'"`
	V基础属性80  map[string]float32   `xorm:"'基础属性80'"`
	V基础属性81  map[string]float32   `xorm:"'基础属性81'"`
	V基础属性82  map[string]float32   `xorm:"'基础属性82'"`
	V基础属性83  map[string]float32   `xorm:"'基础属性83'"`
	V基础属性84  map[string]float32   `xorm:"'基础属性84'"`
	V基础属性85  map[string]float32   `xorm:"'基础属性85'"`
	V基础属性86  map[string]float32   `xorm:"'基础属性86'"`
	V基础属性87  map[string]float32   `xorm:"'基础属性87'"`
	V基础属性88  map[string]float32   `xorm:"'基础属性88'"`
	V基础属性89  map[string]float32   `xorm:"'基础属性89'"`
	V基础属性90  map[string]float32   `xorm:"'基础属性90'"`
	V基础属性91  map[string]float32   `xorm:"'基础属性91'"`
	V基础属性92  map[string]float32   `xorm:"'基础属性92'"`
	V基础属性93  map[string]float32   `xorm:"'基础属性93'"`
	V基础属性94  map[string]float32   `xorm:"'基础属性94'"`
	V基础属性95  map[string]float32   `xorm:"'基础属性95'"`
	V基础属性96  map[string]float32   `xorm:"'基础属性96'"`
	V基础属性97  map[string]float32   `xorm:"'基础属性97'"`
	V基础属性98  map[string]float32   `xorm:"'基础属性98'"`
	V基础属性99  map[string]float32   `xorm:"'基础属性99'"`
	V基础属性100 map[string]float32   `xorm:"'基础属性100'"`
	V基础属性    []map[uint16]float32 `xorm:"-"`
}

func (v *Struct技能信息) F应用到变量(基础属性 map[string]uint16) {
	需求经验 := int64(0)
	if len(v.V需求经验) > 0 {
		需求经验 = v.V需求经验[len(v.V需求经验)-1]
	}
	for i := len(v.V需求经验); i < 100; i++ {
		v.V需求经验 = append(v.V需求经验, 需求经验)
	}

	辅助时长 := uint16(0)
	if len(v.V辅助时长) > 0 {
		辅助时长 = v.V辅助时长[len(v.V辅助时长)-1]
	}
	for i := len(v.V辅助时长); i < 100; i++ {
		v.V辅助时长 = append(v.V辅助时长, 辅助时长)
	}

	最后魔法消耗 := uint32(0)
	if len(v.V魔法消耗) > 0 {
		最后魔法消耗 = v.V魔法消耗[len(v.V魔法消耗)-1]
	}
	for i := len(v.V魔法消耗); i < 100; i++ {
		v.V魔法消耗 = append(v.V魔法消耗, 最后魔法消耗)
	}

	攻击次数 := uint8(1)
	if len(v.V攻击次数) > 0 {
		攻击次数 = v.V攻击次数[len(v.V攻击次数)-1]
		if 攻击次数 == 0 {
			攻击次数 = 1
			v.V攻击次数[len(v.V攻击次数)-1] = 1
		}
	}
	for i := len(v.V攻击次数); i < 100; i++ {
		v.V攻击次数 = append(v.V攻击次数, 攻击次数)
	}
	冷却时间 := int32(0)
	if len(v.V冷却时间) > 0 {
		冷却时间 = v.V冷却时间[len(v.V冷却时间)-1]
	}
	for i := len(v.V冷却时间); i < 100; i++ {
		v.V冷却时间 = append(v.V冷却时间, 冷却时间)
	}

	攻击速度 := uint16(0)
	if len(v.V攻击速度) > 0 {
		攻击速度 = v.V攻击速度[len(v.V攻击速度)-1]
	}
	for i := len(v.V攻击速度); i < 100; i++ {
		v.V攻击速度 = append(v.V攻击速度, 攻击速度)
	}

	攻击距离 := float32(0)
	if len(v.V攻击距离) > 0 {
		攻击距离 = v.V攻击距离[len(v.V攻击距离)-1]
	}
	for i := len(v.V攻击距离); i < 100; i++ {
		v.V攻击距离 = append(v.V攻击距离, 攻击距离)
	}

	攻击半径 := float32(0)
	if len(v.V攻击半径) > 0 {
		攻击半径 = v.V攻击半径[len(v.V攻击半径)-1]
	}
	for i := len(v.V攻击半径); i < 100; i++ {
		v.V攻击半径 = append(v.V攻击半径, 攻击半径)
	}
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性1, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性2, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性3, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性4, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性5, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性6, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性7, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性8, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性9, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性10, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性11, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性12, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性13, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性14, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性15, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性16, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性17, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性18, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性19, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性20, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性21, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性22, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性23, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性24, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性25, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性26, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性27, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性28, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性29, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性30, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性31, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性32, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性33, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性34, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性35, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性36, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性37, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性38, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性39, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性40, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性41, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性42, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性43, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性44, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性45, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性46, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性47, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性48, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性49, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性50, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性51, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性52, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性53, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性54, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性55, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性56, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性57, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性58, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性59, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性60, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性61, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性62, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性63, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性64, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性65, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性66, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性67, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性68, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性69, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性70, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性71, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性72, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性73, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性74, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性75, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性76, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性77, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性78, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性79, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性80, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性81, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性82, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性83, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性84, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性85, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性86, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性87, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性88, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性89, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性90, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性91, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性92, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性93, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性94, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性95, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性96, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性97, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性98, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性99, 基础属性))
	v.V基础属性 = append(v.V基础属性, 技能转换(v.V基础属性100, 基础属性))
	最后属性 := v.V基础属性[0]
	for i := 0; i < 100; i++ {
		if v.V基础属性[i] == nil {
			v.V基础属性[i] = 最后属性
		} else {
			个数 := 0
			for _, _ = range v.V基础属性[i] {
				个数++
				break
			}
			if 个数 == 0 {
				v.V基础属性[i] = 最后属性
			} else {
				最后属性 = v.V基础属性[i]
			}
		}
	}
}
func 技能转换(m map[string]float32, 基础属性 map[string]uint16) map[uint16]float32 {
	ret := make(map[uint16]float32)
	for 名称, 值 := range m {
		属性ID, ok := 基础属性[名称]
		if ok == false {
			fmt.Println("发现未知技能基础名称:" + 名称)
		}
		ret[属性ID] = 值
	}
	m = nil //清除
	return ret
}
